package LunaServer.user;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonSyntaxException;

import LunaServer.user.UserData;

/**
 * 用户数据解析器类，用于解析和序列化用户数据
 */
public class UserDataParser {
    private final Gson gson;
    
    /**
     * 默认构造函数
     */
    public UserDataParser() {
        gson = new GsonBuilder()
                .setPrettyPrinting()
                .create();
    }
    
    /**
     * 从JSON字符串解析用户数据
     *
     * @param json JSON字符串
     * @return UserData对象
     * @throws JsonSyntaxException 如果JSON格式不正确
     */
    public UserData parseUserData(String json) throws JsonSyntaxException {
        return gson.fromJson(json, UserData.class);
    }
    
    /**
     * 将用户数据序列化为JSON字符串
     *
     * @param userData 用户数据对象
     * @return JSON字符串
     */
    public String serializeUserData(UserData userData) {
        return gson.toJson(userData);
    }
    
    /**
     * 将JSON字符串解析为用户数据数组
     *
     * @param json JSON字符串
     * @return UserData数组
     * @throws JsonSyntaxException 如果JSON格式不正确
     */
    public UserData[] parseUserList(String json) throws JsonSyntaxException {
        return gson.fromJson(json, UserData[].class);
    }
    
    /**
     * 将用户数据数组序列化为JSON字符串
     *
     * @param userList 用户数据数组
     * @return JSON字符串
     */
    public String serializeUserList(UserData[] userList) {
        return gson.toJson(userList);
    }
}